﻿@{
    Layout = "~/Views/Shared/Chapter.cshtml";
}

<div class="panel panel-primary">
    <div class="panel-heading">
        <h3 class="panel-title">Exceptions and State Management</h3>
    </div>
    <div class="panel-body">
        <ul>
            <li>Defining “Exception”</li>
            <li>
                Exception-Handling Mechanics
                <ul>
                    <li>The <code>try</code> Block</li>
                    <li>The <code>catch</code> Block</li>
                    <li>The <code>finally</code> Block</li>
                </ul>
            </li>
            <li>The <code>System.Exception</code> Class</li>
            <li>FCL-Defined Exception Classes</li>
            <li>Throwing an Exception</li>
            <li>Defining Your Own Exception Class</li>
            <li>Trading Reliability for Productivity</li>
            <li>
                Guidelines and Best Practices
                <ul>
                    <li>Use <code>finally</code> Blocks Liberally</li>
                    <li>Don’t <code>Catch</code> Everything</li>
                    <li>Recovering Gracefully from an Exception</li>
                    <li>Backing Out of a Partially Completed Operation When an Unrecoverable Exception Occurs—Maintaining State</li>
                    <li>Hiding an Implementation Detail to Maintain a “Contract”</li>
                </ul>
            </li>
            <li>Unhandled Exceptions</li>
            <li>Debugging Exceptions</li>
            <li>Exception-Handling Performance Considerations</li>
            <li>Constrained Execution Regions (CERs)</li>
            <li>Code Contracts</li>
        </ul>

    </div>
</div>